﻿// ***********************************************************************
// Assembly         : Delta_entidad
// Author           : Juan Alberto Cerino Gomez
// Created          : 05-01-2013
//
// Last Modified By : Juan Alberto Cerino Gomez
// Last Modified On : 06-03-2013
// ***********************************************************************
// <copyright file="Cat_filtro_campo.cs" company="Delta Bussines">
//     Copyright (c) 2013  Delta Bussines. All rights reserved.
// </copyright>
// <summary></summary>
// ***********************************************************************
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using Delta_entidad.Atributos;
using Delta_util.Estaticos;
namespace Delta_entidad.EntidadesControl
{
    /// <summary>
    /// Entidad que representa la configuración de filtro de un campo, esta configuración indica el control web que se muestra en el panel de filtro, asi como tambien la operación de filtro a realizar.
    /// </summary>
    [Serializable()]
    [AttEntidad("DG_Cat_filtro_campo", "id_cat_filtro_campo", false, 0,true, true,Enumerados.TIPO_OPERACION_GRID.INSERTAR, Enumerados.TIPO_OPERACION_GRID.ELIMINAR, Enumerados.TIPO_OPERACION_GRID.ACTUALIZAR)]
    public class Cat_filtro_campo : Delta_entidad.Base.TipoBase, Delta_entidad.Base.ITipo
    {
        /// <summary>
        /// Constructor de la clase.
        /// </summary>
        public Cat_filtro_campo() {
            base.EsEntidadControl = true;
        }

        /// <summary>
        /// Variable que indica la clave del tipo de filtro.
        /// </summary>
        private Int16? _id_cat_filtro_campo;
        /// <summary>
        /// Variable que indica la clave del tipo de editor configurado al filtro.
        /// </summary>
        private Int16 _id_editor;
        /// <summary>
        /// Variable que indica la operación de filtro a realizar.
        /// </summary>
        private string _operacion;
        /// <summary>
        /// Variable que indica si los valores se deben tomar de la tabla.
        /// </summary>
        private bool _tomar_valor_grid;
        /// <summary>
        /// Variable que indica el nombre del tipo de filtro.
        /// </summary>
        private string _nombre;

        /// <summary>
        /// Obtiene o establece la clve del tipo de filtro.
        /// </summary>
        /// <value>Clave del tipo de filtro.</value>
        [AttrParametro(System.Data.SqlDbType.SmallInt, 4, null, System.Data.ParameterDirection.InputOutput, Enumerados.TIPO_QUERY.INSERTAR, Enumerados.TIPO_QUERY.ELIMINAR, Enumerados.TIPO_QUERY.OBTENER, Enumerados.TIPO_QUERY.OBTENER_TODOS)]
        [AttPropiedad("Clave", true, false, false, false, Enumerados.TIPO_EDITOR.TEXBOX, null, 1)]
        public Int16? id_cat_filtro_campo
        {
            get { return _id_cat_filtro_campo; }
            set { _id_cat_filtro_campo = value; }
        }

        /// <summary>
        /// Obtiene o establece el valor que indica el tipo de editor configurado al filtro.
        /// </summary>
        /// <value>Clave del tipo de editor.</value>
        [AttrParametro(System.Data.SqlDbType.SmallInt, 4, null, System.Data.ParameterDirection.Input, Enumerados.TIPO_QUERY.INSERTAR)]
        [AttPropiedad("Editor", false, false, false, true, Enumerados.TIPO_EDITOR.LISTA, null, "Delta_control", "Delta_control.Base.ControlBase`1=Delta_entidad.EntidadesControl.Cat_editor", "ObtenerListado|Lista", "id_editor", "nombre", null, null, false, 2)]
        public Int16 id_editor
        {
            get { return _id_editor; }
            set { _id_editor = value; }
        }

        /// <summary>
        /// Obtiene o establece el nombre del filtro.
        /// </summary>
        /// <value>Nombre del filtro.</value>
        [AttrParametro(System.Data.SqlDbType.VarChar, 50, null, System.Data.ParameterDirection.Input, Enumerados.TIPO_QUERY.INSERTAR)]
        [AttPropiedad("Nombre", true, false, false, true, Enumerados.TIPO_EDITOR.TEXBOX, null, 3)]
        public string nombre
        {
            get { return _nombre; }
            set { _nombre = value; }
        }

        /// <summary>
        /// Obtiene o establece el valor de la operación de filtro configurada.
        /// </summary>
        /// <value>Operación de filtro.</value>
        [AttrParametro(System.Data.SqlDbType.VarChar, 50, null, System.Data.ParameterDirection.Input, Enumerados.TIPO_QUERY.INSERTAR)]        
        [AttPropiedad("Operación", true, false, false, true, Enumerados.TIPO_EDITOR.LISTA, null, null, null, ">,<,!=,=,LIKE", null, null, null, null, true, 4)]
        public string operacion
        {
            get { return _operacion; }
            set { _operacion = value; }
        }
        /// <summary>
        /// Obtiene o establece el valor que indica si se debe mostrar una lista con los valores distintos de un campo, los valores de la lista se toman de la tabla.
        /// </summary>
        /// <value>Valor lógico.</value>
        [AttrParametro(System.Data.SqlDbType.Bit, 4, null, System.Data.ParameterDirection.Input, Enumerados.TIPO_QUERY.INSERTAR)]
        [AttPropiedad("Tomar valores del grid", true, false, false, true, Enumerados.TIPO_EDITOR.CHECK, "Indica si se quiere ver una lista con los distintos valores de la columna que contiene el grid", 5)]
        public bool tomar_valor_grid
        {
            get { return _tomar_valor_grid; }
            set { _tomar_valor_grid = value; }
        }

        /// <summary>
        /// Obtiene o establece el nombre del editor.
        /// </summary>
        /// <value>Nombre del editor del filtro.</value>
        [AttPropiedad("Tipo Editor", true, true, false, false, Enumerados.TIPO_EDITOR.TEXBOX, null, 6)]
        [AttEditor(null, null, null, "Delta_webControl", "Delta_webControl.Templates.LinkTemplateTEdit", null, null)]
        public string nombre_editor
        {
            get;
            set;
        }





    }
}